查看原文
其他

如何快速将Zabbix5.0升级至6.0?

Zabbix开源社区 Zabbix开源社区 2023-11-30


感谢本文作者王会新ZCP-Zabbix高级认证工程师

目录

1.方案说明
2.环境说明
3.Mysql环境部署

3.1 mysql安装3.2 配置mysql3.3 创建zabbix库

4.Zabbix Server升级4.1 升级前备份4.2 为新数据库授权4.3 导入Zabbix5.0数据结构4.4 导入旧数据库备份Zabbix配置数据4.5 为新数据库历史表添加主键4.6 为新数据库创建表分区4.7 创建事件调度器4.8 升级Zabbix相关服务4.9 Zabbix服务检查4.10 失败回滚

方案说明

升级目标版本Zabbix6.0.3。升级方案Server采用在当前环境节点直接升级,数据库采用新服务器部署Mysql8.0.28数据库将Server配置信息迁移至新数据库,升级前需对Server服务节点快照备份便于失败回滚。因升级需要停用服务,所以不论升级成功或失败,都将造成升级当天部分监控数据的丢失。

环境说明

安装前准备

涉及到了机器设备:zabbixdb

系统版本:CentOS Linux release 8.3.2011

MySQL版本:mysql8.0.28数据库。

在默认情况下SELinux和防火墙都是关闭状态。

Mysql环境部署

3.1 mysql安装

1.创建mysql用户和禁止用户登录

2.根据要求数据库存储目录为/data目录

3.安装已经下载好的mysql的rpm安装包

3.2 配置Mysql

1.初始化Mysql并指定数据目录

2.修改Mysql配置文件

下面配置属于zabbix-server的mysql配置。innodb_buffer_pool_size = 16G 大小为总内存的75%左右。

vi  /etc/my.cnf

3.启动服务并添加开机自启

4.查看Mysql进程

ps -ef | grep mysql

5.修改安全策略

1.修改数据库root密码

grep password /var/log/mysqld.log

mysql>ALTER USER 'root'@'localhost' identified by 'Zabbix#1234';

3.3 创建zabbix库

mysql>create database zabbix character set utf8mb4 collate utf8mb4_bin;

Zabbix Server升级

4.1 升级前备份

1.导出Zabbix配置数据#mysqldump -uroot -p zabbix --ignore-table=zabbix.history --ignore-table=zabbix.history_uint  --ignore-table=zabbix.history_str  --ignore-table=zabbix.history_text  --ignore-table=zabbix.history_log  --ignore-table=zabbix.trends  --ignore-table=zabbix.trends_uint  --ignore-table=zabbix.alerts  --ignore-table=zabbix.events>/opt/zbx5.0.sql

2.备份zabbix配置文件

3.备份zabbix前端

4.备份告警脚本及自定义脚本

5.备份httpd配置文件

4.2 为新数据库授权

1.创建用户并授权

mysql> create user 'zabbix'@'192.18.252.%' identified by 'Zabbix#1234'; mysql> create user 'zabbix'@'localhost' identified by 'Zabbix#1234'; mysql> grant all privileges on zabbix.* to 'zabbix'@'192.18.252.%'; mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost'; mysql>flush privileges; mysql>alter user 'zabbix'@'192.18.252.%' identified with mysql_native_password by '123456';
mysql>alter user 'zabbix'@'192.18.252.%' identified with mysql_native_password by 'Zabbix#1234';

#Mysql8.0安全系数较高需修改初始密码

4.3 导入zabbix5.0数据结构

1.导入Zabbix5.0数据结构zcat /opt/software/create.sql.gz | mysql -uzabbix -p zabbix

4.4 导入旧数据库备份Zabbix配置数据

1.导入旧环境Zabbix配置数据

cat /opt/software/zbx5.0.sql | mysql -uzabbix -p zabbix

4.5 为新数据库历史表添加主键

1.Zabbix数据库history表添加主键

mysql -uzabbix -p zabbix < /opt/software/history_pk_prepare.sql

2.删除旧表

mysql>DROP TABLE history_old; mysql>DROP TABLE history_uint_old; mysql>DROP TABLE history_str_old; mysql>DROP TABLE history_log_old; mysql>DROP TABLE history_text_old;

4.6 为新数据库创建表分区

1.配置文件准备

上传partition_call.sql存储过程和partition_all.sql分区设置保留时间。设置历史数据保留时长(90天)和趋势数据保留时长(360天)

2.创建并导入存储过程

mysql -uzabbix -p zabbix < /opt/software/partition_call.sql

mysql -uzabbix -p zabbix < /opt/software/partition_all.sql

3.调用存储过程

mysql -uzabbix -p zabbix -e "call partition_maintenance_all('zabbix')"

4.7 创建事件调度器

mysql> use zabbix; mysql> create event zabbix_partition on schedule every 1 day starts '2022-04-28 2:00:00' do CALL partition_maintenance_all('zabbix');

4.8 升级Zabbix相关服务

1.停止Zabbix、Agent、PHP、Apache服务

systemctl stop zabbix-server zabbix-agent httpd php-fpm

2.卸载zabbix5.0.1

rpm -e zabbix-web-deps-5.0.1-1.el8.noarch zabbix-apache-conf-5.0.1-1.el8.noarch zabbix-web-mysql-5.0.1-1.el8.noarch zabbix-agent-5.0.1-1.el8.x86_64 zabbix-server-mysql-5.0.1-1.el8.x86_64 zabbix-web-5.0.1-1.el8.noarch

3.安装zabbix6.0.3

rpm -ivh zabbix-web-deps-6.0.3-1.el8.noarch.rpm zabbix-apache-conf-6.0.3-1.el8.noarch.rpm zabbix-web-mysql-6.0.3-1.el8.noarch.rpm zabbix-agent-6.0.3-1.el8.x86_64.rpm zabbix-server-mysql-6.0.3-1.el8.x86_64.rpm zabbix-web-6.0.3-1.el8.noarch.rpm

4.配置zabbix6.0.3配置文件

由于zabbix5.0跟zabbix6.0.3的zabbix_server.conf配置文件参数不同,所以不能直接复制替换zabbix_server.conf。

查看备份zabbix-server配置

5.对应修改zabbix server 配置文件

vi /etc/zabbix/zabbix_server.conf

6.启动Zabbix、Agent、PHP、Apache服务

systemctl start zabbix-server zabbix-agent httpd php-fpm

7.查看日志文件

tail -f  /var/log/zabbix/zabbix_server.log tail -f /data/mysql/data/log/mysqld.log

Zabbix server将会自动升级数据库。开始后,Zabbix server报告当前(强制和非强制的)和需要的数据库版本。如果当前强制版本低于需要的版本,Zabbix server自动执行所需要的数据库补丁。数据库升级的开始和进度信息(百分比)将会写入Zabbix server的日志文件中。当升级完成后,将会在日志文件中写入一条“database upgrade fully completed”的信息。如果任何升级补丁失败,Zabbix server将不会启动,即使数据库当前强制版本比所需版本高,Zabbix server也不会启动。只有当数据库当前的强制版本与需要的强制版本相符时,Zabbix server才会启动。

注:在你启动server之前:

◆确认数据库用户拥有足够的权限(创建表,删除表,建立索引,删除索引)

◆确认拥有足够的空余磁盘空间

Zabbix服务检查

◆检查升级后的zabbix是否工作正常,检查最新数据。

◆检查zabbix server日志是否正常。

1.Web访问并检查数据及告警情况

Web访问出现如图所示问题

2.修改前端连接新数据库信息

3.检查最新数据采集情况

4.如图所示数据采集正常

4.1 出现中文乱码修改字体

mv /usr/share/fonts/dejavu/DejaVuSans.ttf /usr/share/fonts/dejavu/DejaVuSans.ttf_bak20220424

mv /opt/software/msyh.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

5.检查告警信息触发动作成功发送告警信息

失败回滚

1.回滚Server升级前备份文件,如有文件缺失启动快照恢复

2.回滚MySQL数据库升级前的备份服务器,将Server配置文件数据库指向修改原地址


祝大家升级顺利!

--------------     --------------


7届Zabbix中国峰会来了!

12月2-3日,相约上海。

抢早鸟票!同时讲师招募!

大会包含客户案例、新功能技巧、Workshop(实践操作课)、趣味晚宴等精彩活动。


往届峰会包含交通银行、安信证券、华为、光大银行、中国银行、中移在线、京东、咪咕等,本届峰会精彩继续!

不懂就问,参加Zabbix中国峰会是一种怎样的体验?


 往期推荐

Zabbix6.0升级指南-数据库如何同步升级?

银行案例|Zabbix跨版本升级指南,4.2-6.0不香吗?

Zabbix全年在线课录屏

PDF手册|1666页 Zabbix6.0官方中文 操作手册PDF下载!

扫一扫|加入技术交流群

微信号|17502189550

备注“使用Zabbix年限+企业+姓名”

5000+用户已加入!

一个人走得快,一群人走得远!

继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存